package principal.view.gui.model;

import java.util.ArrayList;
import java.util.List;

import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;

import principal.view.gui.altaComponente.AltaKitsMain;




import principal.model.ArticuloComponente;
import principal.model.KitDao;
import principal.model.vos.Articulo;
import principal.model.vos.Kit;



public class MyModelTree extends DefaultTreeModel{
	KitDao kitDao = new KitDao();
	AltaKitsMain kitsMain;
	
	
	public MyModelTree(AltaKitsMain kitMain){		
		super(new DefaultMutableTreeNode("KITS"));
		this.kitsMain = kitMain;

		//Roos2
		List allKits = kitDao.findAllKitsByTemp(kitMain.getPrincipal().getTemporada());
//		List<Kit> allKits = kitDao.findAllKitsByTemp(kitMain.getPrincipal().getTemporada());
		
		 //ArrayList<ArticuloComponente> aKits = ((Kit)allKits).getChildren();
		
		
		//Recorro los kits y los agrego como nodos

	    for (int i=0; i<allKits.size(); i++) {

	    	//Roos2
//			DefaultMutableTreeNode nodoKitNuevo = new DefaultMutableTreeNode(kit);
	    	DefaultMutableTreeNode nodoKitNuevo = new DefaultMutableTreeNode((Kit)allKits.get(i));
			
			
			//Roos2
			//ArrayList articulos = ((Kit)kit).getChildren();
	    	ArrayList articulos = ((Kit)allKits.get(i)).getChildren();
			
//			ArrayList<ArticuloComponente> articulos = ((Kit)kit).getChildren();
			
			
			//Recorro los articulos y se los agrego como hijos a los kit.
			for( int j=0; j<articulos.size(); j++){
			
				//Roos2
//				Articulo articulo = (Articulo)art;
				Articulo articulo = (Articulo)articulos.get(j);
				
				DefaultMutableTreeNode nodoArtNuevo = new DefaultMutableTreeNode(articulo);
				nodoKitNuevo.add(nodoArtNuevo);
			}
			DefaultMutableTreeNode raiz =(DefaultMutableTreeNode) getRoot();
			raiz.add(nodoKitNuevo);
			
		}
	    
		//ROOS For de arriba
//		    for (Kit kit : allKits) {
//				DefaultMutableTreeNode nodoKitNuevo = new DefaultMutableTreeNode(kit);
//				ArrayList<ArticuloComponente> articulos = ((Kit)kit).getChildren();
//				//Recorro los articulos y se los agrego como hijos a los kit.
//				for( ArticuloComponente art: articulos){
//					Articulo articulo = (Articulo)art;
//					DefaultMutableTreeNode nodoArtNuevo = new DefaultMutableTreeNode(articulo);
//					nodoKitNuevo.add(nodoArtNuevo);
//				}
//				DefaultMutableTreeNode raiz =(DefaultMutableTreeNode) getRoot();
//				raiz.add(nodoKitNuevo);
//				
//			}		    		  		  
		
	}
	
	public void actualizar(){
	
		//Roos2
		List allKits = kitDao.findAllKitsByTemp(kitsMain.getPrincipal().getTemporada());
//		List<Kit> allKits = kitDao.findAllKitsByTemp(kitsMain.getPrincipal().getTemporada());
		
		
		DefaultMutableTreeNode raiz =(DefaultMutableTreeNode) getRoot();
		raiz.removeAllChildren();
		//Recorro los kits y los agrego como nodos
		
		
	    for (int i=0; i<=allKits.size(); i++) {
	    	//Roos2
//			DefaultMutableTreeNode nodoKitNuevo = new DefaultMutableTreeNode(kit);
	    	DefaultMutableTreeNode nodoKitNuevo = new DefaultMutableTreeNode(allKits.get(i));
		
			//Roos2
			//ArrayList  articulos = ((Kit)kit).getChildren();
	    	ArrayList  articulos = ((Kit)allKits).getChildren();
//			ArrayList<ArticuloComponente> articulos = ((Kit)kit).getChildren();
			
			
			//Recorro los articulos y se los agrego como hijos a los kit.
			for(int j=0; j<=articulos.size(); j++){
				
				//Roos2
//				Articulo articulo = (Articulo)art;
				Articulo articulo = (Articulo)articulos.get(i);
				
				DefaultMutableTreeNode nodoArtNuevo = new DefaultMutableTreeNode(articulo);
				nodoKitNuevo.add(nodoArtNuevo);
			}
			
			raiz.add(nodoKitNuevo);
			
		}
		
		//ROOS For de arriba
//		    for (Kit kit : allKits) {
//				DefaultMutableTreeNode nodoKitNuevo = new DefaultMutableTreeNode(kit);
//				ArrayList<ArticuloComponente> articulos = ((Kit)kit).getChildren();
//				//Recorro los articulos y se los agrego como hijos a los kit.
//				for( ArticuloComponente art: articulos){
//					Articulo articulo = (Articulo)art;
//					DefaultMutableTreeNode nodoArtNuevo = new DefaultMutableTreeNode(articulo);
//					nodoKitNuevo.add(nodoArtNuevo);
//				}
//				
//				raiz.add(nodoKitNuevo);
//				
//			}		   
		
	 }
	

}
